package com.muyu.danmo.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;


/**
 * 个人信息对象 danmo_information
 *
 * @author yangle
 * @date 2024-09-21
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class DanmoInformation extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 个人信息id
     */
    private Long id;

    /**
     * 用户ID
     */
    @Excel(name = "用户ID")
    private Long userId;

    /**
     * 姓名
     */
    @Excel(name = "姓名")
    private String name;

    /**
     * 省份
     */
    @Excel(name = "省份")
    private String province;

    /**
     * 市
     */
    @Excel(name = "市")
    private String citycode;

    /**
     * 县
     */
    @Excel(name = "县")
    private String countycode;


    /**
     * 协会选择
     */
    @Excel(name = "协会选择")
    private Long association;

    /**
     * 协会选择
     */
    @Excel(name = "协会选择")
    private Long associationType;

    /**
     * 证书
     */
    @Excel(name = "证书")
    private String certificate;

    /**
     * 证书编号
     */
    @Excel(name = "证书编号")
    private String certificateNumber;

    /**
     * 会费开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "会费开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date sxpiryCreate;

    /**
     * 会费到期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "会费到期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date sxpiryDate;

    /**
     * 会费状态
     */
    @Excel(name = "会费状态")
    private String membershipTatus;
    /**
     * 销量
     */
    @Excel(name = "销量")
    private Long sales;
    /**
     * 年份
     */
    private String year;
    /**
     * 入会省
     */
    private String addressEntry;

    /**
     * 入会市
     */
    private String addressCity;

    /**
     * 入会县
     */
    private String addressCounty;

    /**
     * 职位（1 会员 2 理事 ）
     */
    private Long positions;

    private Integer pageNum = 1;
    private Integer pageSize = 10;

    /**
     * 省份名称
     */
    private String provinceName;
    /**
     * 市名称
     */
    private String cityName;
    /**
     * 县名称
     */
    private String countyName;
    /**
     * 协会类型名称
     */
    private String associationTypeName;
    /**
     * 协会名称
     */
    private String associationName;

    /**
     * 用户手机号
     */
    private String userNumber;

    /**
     * 第几届
     */
    @Excel(name = "第几届")
    private Long several;

    /**
     * 书法家的级别（国家级、省级、市级、区级）
     */
    @Excel(name = "书法家的级别", readConverterExp = "国=家级、省级、市级、区级")
    private Long level;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Long condition;

    /**
     * 个人作品
     */
    private List<DanmoPersonalPictures> danmoPersonalPicturesList;

    /**
     * 个人简介
     */
    private DanmoInformationBar danmoInformationBar;
    /**
     * 个人头像集
     */
    private List<DanmoInformationPhotos> danmoInformationPhotosList;
    /**
     * 拾贝
     */
    private List<DanmoCollectShellfish> danmoCollectShellfishList;

    /**
     * 个人信息相关星图标题
     */
    private List<DanmoInformationMapTitle> danmoInformationMapTitleList;

    /**
     * 职位名称
     */
    private String positionName;



    /**
     * 职位排序
     */
   private Long positionSort;

    /**
     * 职位id
     */
    private Long positionId;

    /**
     * 朝代id
     */
    private Long dynastiesId;
    /**
     * 朝代名称
     */
    private String dynastiesName;

    /**
     * ‘段位’
     */
    private String grade;

    /**
     * '个人简介'
     */
    private List<DanmoInformationContent> danmoInformationContentList;

    /**
     * 小团体
     *
     * @return
     */
    private Long massId;

    /**
     * 小团体名称
     */
    private String massName;

    /**
     * 相关星图标题
     * @return
     */
    private String title;

    /**
     * 相关星图浏览量
     * @return
     */
    private Long views;

    // 新增字段
    private Integer firstCharStrokeCount;

    /**
     * 商品信息
     * @return
     */
    private List<DanmoShoppingProducts> danmoShoppingProductsList;

@Excel(name = "身份证正面")
private String idFront;
@Excel(name = "身份证反面")
private String idReverse;
    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("name", getName())
                .append("province", getProvince())
                .append("citycode", getCitycode())
                .append("countycode", getCountycode())
                .append("association", getAssociation())
                .append("associationType", getAssociationType())
                .append("certificate", getCertificate())
                .append("certificateNumber", getCertificateNumber())
                .append("sxpiryCreate", getSxpiryCreate())
                .append("sxpiryDate", getSxpiryDate())
                .append("membershipTatus", getMembershipTatus())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("sales", getSales())
                .append("several", getSeveral())
                .append("level", getLevel())
                .append("condition", getCondition())
                .append("year", getYear())
                .append("addressEntry", getAddressEntry())
                .append("addressCity", getAddressCity())
                .append("addressCounty", getAddressCounty())
                .append("positions", getPositions())
                .append("dynastiesId", getDynastiesId())
                .append("massId", getMassId())
                .append("title", getTitle())
                .append("views", getViews())
                .append("idFront", getIdFront())
                .append("idReverse", getIdReverse())
                .toString();
    }
}
